home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Leser 15 / Amiga Plus Leser CD 15.iso / Tools / Development / yacas_alg / yacas_morphos / share / yacas / include / lispparser.h < prev    next >
Encoding:
C/C++ Source or Header  |  2002-03-13  |  896 b   |  43 lines

  1. /** \file lispparser.h
  2.  *  parsing and printing in the old-fashioned lisp style
  3.  *
  4.  */
  5.  
  6. #ifndef __lispparser_h__
  7. #define __lispparser_h__
  8.  
  9. #include "yacasbase.h"
  10. #include "lispobject.h"
  11. #include "tokenizer.h"
  12. #include "lispio.h"
  13. #include "lisphash.h"
  14. class LispParser : public YacasBase
  15. {
  16. public:
  17.     LispParser(LispTokenizer& aTokenizer, LispInput& aInput,
  18.                LispHashTable& aHashTable);
  19.     virtual ~LispParser();
  20.     virtual void Parse(LispPtr& aResult, LispEnvironment& aEnvironment );
  21. protected:
  22.     void ParseList(LispPtr& aResult);
  23.     void ParseAtom(LispPtr& aResult,LispStringPtr aToken);
  24.  
  25. public:
  26.     LispTokenizer& iTokenizer;
  27.     LispInput& iInput;
  28.     LispHashTable& iHashTable;
  29. };
  30.  
  31.  
  32.  
  33.  
  34. class LispPrinter : public YacasBase
  35. {
  36. public:
  37.     virtual ~LispPrinter();
  38.     virtual void Print(LispPtr& aExpression, LispOutput& aOutput, LispEnvironment& aEnvironment);
  39. };
  40.  
  41.  
  42. #endif
  43.